Network performance has become an important issue with applications migrating to the Internet. Network performance can be generally described as the performance of data communications over a network, such as the latency and throughput of a network connection in accordance with one or more particular protocols. For example, a client may periodically connect with a target server and communicate data with that target server. The communication of this data is measured, for latency, throughput, and other factors, to determine the network performance of the client in relation to the server.
Many types of monitoring are performed by client initiation, instead of server initiation. This is particularly the case where ordinary personal computers (PC's) are employed as the clients. PC's may be behind firewalls, such that monitoring sessions with them cannot be initiated by servers. The PC's may also not be turned on all the time such that monitoring sessions with them cannot be initiated by servers. As a result, the common scenario is one or more clients initiating at various times monitoring sessions with a target server.
However, two particular problems may results in this common scenario. First, the target server may not be able to handle all the incoming monitoring sessions initiated by clients. For example, there may be a large number of clients. If by coincidence a large percentage of these clients all attempt to initiate monitoring sessions with the target server during the same period of time, the target server may become overloaded. The result is that the monitoring sessions are not performed correctly. A limited solution is to turn away some of the clients—i.e., have the target server refuse monitoring sessions initiated by some of the clients—but this can be inconvenient to the users of the clients.
Second, even if the clients know a priori to only initiate monitoring sessions at certain times. However, the clocks of various clients may not be set correctly, such that monitoring sessions are not initiated with the target server at the times expected by the target server. Various protocols, such as the network time protocol (NTP), and the simple network time protocol (SNTP), can be employed to ensure that the clients' clocks are properly synchronized. However, doing so adds complexity to the monitoring process, and can be difficult to have the clients achieve.
For these and other reasons, therefore, there is a need for the present invention.